Skip to content

Conversation

andrew-lastmile
Copy link
Contributor

@andrew-lastmile andrew-lastmile commented Sep 15, 2025

  • updating quick start code snippet
  • adding hyperlinks for examples
Screen.Recording.2025-09-15.at.3.44.11.PM.mov

Summary by CodeRabbit

  • Documentation
    • Rebranded “MCP Agent Cloud” to “mcp-agent cloud” and updated navigation/labels.
    • Refocused server docs on Tools via Decorators with synchronous and asynchronous tool examples, expanded built-in tool endpoints and returns, and removed duplicate custom-tool examples.
    • Added cloud deployment guide and cloud-specific client configuration (remote endpoint + Bearer token).
    • Streamlined Getting Started/Overview with a simplified deploy flow, entrypoint/packaging guidance, secrets examples, and updated home quick example (video + tool-based demo).
    • Marked Sampling as supported across transports.

- updating quick start code snippet
- adding hyperlinks for examples
Copy link

coderabbitai bot commented Sep 15, 2025

Caution

Review failed

The pull request is closed.

Note

Other AI code review bot(s) detected

CodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review.

Walkthrough

Documentation updates across cloud/site pages: introduces "Tools via Decorators" with @app.tool and @app.async_tool examples, enumerates built-in workflow tool endpoints, adds cloud deployment and cloud-specific client config guidance, rebrands to "mcp-agent cloud," streamlines onboarding/deploy flows, updates secrets/config examples, and marks Sampling supported in primitives.

Changes

Cohort / File(s) Change Summary
Agent server tools & endpoints
docs/cloud/agent-server.mdx
Replaced default/custom tool sections with "Tools via Decorators" examples for @app.tool and @app.async_tool; documented built-in workflow endpoints (workflows-list, workflows-runs-list, workflows-run, workflows-get_status, workflows-resume, workflows-cancel); added cloud deployment snippet and cloud-specific Claude Desktop client config; minor formatting tweaks.
Cloud docs rebrand & deployment flow
docs/cloud/deploying-mcp-servers.mdx, docs/cloud/getting-started.mdx, docs/cloud/overview.mdx
Renamed service to mcp-agent cloud across pages; simplified deployment flow and CLI (login/deploy examples), required main.py entrypoint and packaging notes, updated secrets guidance and annotated code blocks, removed/condensed prior architecture and some benefit lines.
Homepage & examples
docs/index.mdx
Replaced header image with video; refactored quick example to a tool-based pattern using @app.tool (async example); annotated config/secrets blocks with filenames; removed several demo subsections; updated navigation links.
Configuration & primitives
docs/configuration.mdx, docs/concepts/mcp-primitives.mdx
Cloud secrets wording clarified for mcp-agent cloud; example secrets switched to !developer_secret; primitives matrix updated to mark Sampling supported across transports; minor formatting/newline fixes.
Docs navigation metadata
docs/docs.json
Navigation group label changed from "MCP Agent Cloud" to "mcp-agent cloud"; trailing newline added.

Sequence Diagram(s)

sequenceDiagram
  autonumber
  actor User as Client (Claude Desktop)
  participant MCP as MCP Transport
  participant Srv as MCP Server (mcp-agent app)
  participant Tool as @app.tool

  User->>MCP: tools/list
  MCP->>Srv: GET /tools
  Srv-->>MCP: tool metadata
  MCP-->>User: tool list

  User->>MCP: tools/call (research, args)
  MCP->>Srv: POST /tools/call
  Srv->>Tool: invoke research(args)
  Tool-->>Srv: result
  Srv-->>MCP: result
  MCP-->>User: result
Loading
sequenceDiagram
  autonumber
  actor User as Client
  participant MCP as MCP Transport
  participant Srv as MCP Server
  participant ATool as @app.async_tool
  participant WF as Workflow Engine

  rect rgba(220,245,255,0.6)
    User->>MCP: workflows-run (tool, args)
    MCP->>Srv: POST /workflows/run
    Srv->>ATool: start durable tool
    ATool->>WF: enqueue job
    Srv-->>MCP: { run_id, status: "running" }
    MCP-->>User: run_id
  end

  User->>MCP: workflows-get_status(run_id)
  MCP->>Srv: GET /workflows/status
  Srv->>WF: query status
  WF-->>Srv: status/result
  Srv-->>MCP: status/result
  MCP-->>User: status/result

  alt Cancel
    User->>MCP: workflows-cancel(run_id)
    MCP->>Srv: POST /workflows/cancel
    Srv->>WF: cancel job
    WF-->>Srv: canceled
    Srv-->>MCP: { status: "canceled" }
    MCP-->>User: canceled
  end
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Suggested reviewers

  • StreetLamb
  • saqadri

Poem

A bunny taps deploy with gentle paws,
Tools hop to life beneath my laws.
Sync nibble, async bound—workflows start to hum,
Status pings and run_ids drum.
I munch a carrot, docs all done—hooray, servers come! 🥕🐇

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title Check ✅ Passed The title "Updating docs.mcp-agent.com for MCP-Agent Cloud" accurately describes that the PR is a documentation update for the MCP Agent Cloud and aligns with the changeset, which largely renames and updates cloud-related docs, examples, and deployment guidance. It is concise and focused on docs rather than code, so a reviewer scanning history will understand the primary change. The only minor nit is inconsistent capitalization between the title ("MCP-Agent Cloud") and the updated docs ("mcp-agent cloud"), but this does not make the title misleading.
Docstring Coverage ✅ Passed No functions found in the changes. Docstring coverage check skipped.

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between bc73126 and 0903d7b.

📒 Files selected for processing (1)
  • docs/cloud/overview.mdx (2 hunks)

Tip

👮 Agentic pre-merge checks are now available in preview!

Pro plan users can now enable pre-merge checks in their settings to enforce checklists before merging PRs.

  • Built-in checks – Quickly apply ready-made checks to enforce title conventions, require pull request descriptions that follow templates, validate linked issues for compliance, and more.
  • Custom agentic checks – Define your own rules using CodeRabbit’s advanced agentic capabilities to enforce organization-specific policies and workflows. For example, you can instruct CodeRabbit’s agent to verify that API documentation is updated whenever API schema files are modified in a PR. Note: Upto 5 custom checks are currently allowed during the preview period. Pricing for this feature will be announced in a few weeks.

Please see the documentation for more information.

Example:

reviews:
  pre_merge_checks:
    custom_checks:
      - name: "Undocumented Breaking Changes"
        mode: "warning"
        instructions: |
          Pass/fail criteria: All breaking changes to public APIs, CLI flags, environment variables, configuration keys, database schemas, or HTTP/GraphQL endpoints must be documented in the "Breaking Change" section of the PR description and in CHANGELOG.md. Exclude purely internal or private changes (e.g., code not exported from package entry points or explicitly marked as internal).

Please share your feedback with us on this Discord post.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Collaborator

@saqadri saqadri left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice. I wonder if we should remove the demo videos. The page is pretty long

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (25)
docs/concepts/mcp-primitives.mdx (2)

359-359: Sampling row reads “Coming Soon” but has ✅ across all transports.

This can confuse readers about availability. Either mark transports with 🚧/⚠️ or change Status to “Fully Supported” if that’s accurate.

Apply one of these minimal diffs:

- | Sampling | ✅ | ✅ | ✅ | ✅ | Coming Soon |
+ | Sampling | 🚧 | 🚧 | 🚧 | 🚧 | Coming Soon |

or

- | Sampling | ✅ | ✅ | ✅ | ✅ | Coming Soon |
+ | Sampling | ✅ | ✅ | ✅ | ✅ | Fully Supported |

364-376: Minor copy: standardize “Summarise” -> “Summarize”.

Keep US spelling consistent with the rest of the docs.

-                "Summarise what are my prompts and resources?",
+                "Summarize what are my prompts and resources?",
docs/configuration.mdx (2)

695-703: Grammar and clarity fix in Cloud Secrets tab.

  • Typo: trailing “.s”
  • Consider a brief note that the CLI converts !developer_secret into stored handles during deploy.
-    For mcp-agent cloud deployments, use mcp-agent cloud's secret management:
+    For mcp-agent cloud deployments, use the platform's secret management:
@@
-      api_key: !developer_secret
+      api_key: !developer_secret
@@
-    Mark which secrets you, as the developer, want to keep safe and secure.s
+    Mark which secrets you, as the developer, want stored securely. During deploy, these tags are converted into managed secret handles.

268-275: Version claims may drift; add a note to verify current API versions/models.

Azure api_version: "2025-01-01-preview" and other provider model IDs change frequently. Suggest a brief “verify latest” note in-line.

docs/cloud/deploying-mcp-servers.mdx (4)

8-15: Brand consistency: ensure all mentions use “mcp-agent cloud”.

There are still occurrences of “MCP Agent Cloud” later (e.g., line 24, step text around line 88). Please unify.

-If you only need basic MCP server functionality without workflows, you can still benefit from MCP Agent Cloud's infrastructure.
+If you only need basic MCP server functionality without workflows, you can still benefit from mcp-agent cloud's infrastructure.
-# 4. Deploy to MCP Agent Cloud's managed infrastructure
+# 4. Deploy to mcp-agent cloud's managed infrastructure

47-49: CLI flow consistency.

Elsewhere the login command varies between mcp-agent login and mcp-agent cloud auth login. Pick one canonical form and use it across pages.


59-75: Security: avoid eval() in docs example.

Use a safe evaluator to avoid copy‑pasting unsafe patterns.

-async def calculate(expression: str) -> str:
+async def calculate(expression: str) -> str:
     """Evaluate a mathematical expression."""
-    result = eval(expression)  # Note: Use safe evaluation in production
+    import ast, operator as op
+    # Safe eval example: parse and allow only numbers and basic ops
+    # (link to full example elsewhere if you have one)
+    result = str(ast.literal_eval(expression))
-    return str(result)
+    return result

171-182: CLI command mismatch.

This block uses mcp-agent cloud auth login while other pages use mcp-agent login or uv run mcp-agent login. Standardize command names and prefixes (with/without uv run) across the docs.

docs/cloud/getting-started.mdx (6)

34-41: Unify login command with other pages.

Here it’s mcp-agent login; elsewhere we show uv run mcp-agent login or mcp-agent cloud auth login. Choose one canonical flow.


47-47: Temporal as default in Quick Start: confirm expectation.

Setting execution_engine: temporal in Quick Start is great for cloud, but the index page recommends asyncio for local. Add a one-liner clarifying “use temporal for cloud deployments.”


64-66: Note text: minor clarity tweak.

Explicitly state that the deploy command converts !developer_secret into managed secrets.

-    Swap your api_key with !developer_secret to mark what keys will be saved as secrets within mcp-agent cloud.
+    Replace raw API keys with `!developer_secret`. During deploy, these entries are stored securely and referenced by handles.

84-89: Branding consistency.

Bullet 4 says “MCP Agent Cloud’s managed infrastructure.” Use “mcp-agent cloud.”

-    4. Deploy to MCP Agent Cloud's managed infrastructure
+    4. Deploy to mcp-agent cloud's managed infrastructure

229-244: Claude Desktop snippet: align domain and token naming with other pages.

Elsewhere: deployments.mcp-agent.com and BEARER_TOKEN. Standardize URL/domain and token var naming across docs.

-            "https://deployments.mcp-agent.com/servers/web-summarizer/sse",
+            "https://deployments.mcp-agent.com/servers/web-summarizer/sse",
@@
-            "Authorization: Bearer <MCP_AGENT_API_KEY>"
+            "Authorization: Bearer ${MCP_AGENT_API_KEY}"

339-349: Duplication with earlier secrets guidance; keep one canonical snippet.

Consider linking back to Quick Start secrets block to avoid drift.

docs/cloud/agent-server.mdx (2)

149-160: Login/deploy commands: keep consistent with Getting Started/Overview.

This block uses uv run mcp-agent .... Align across pages and decide whether uv run is required.


178-193: Cloud JSON config: domain and JSON shape.

  • Domain differs from other pages (mcp-agent-cloud.lastmileai.dev vs deployments.mcp-agent.com).
  • The snippet is a fragment; consider including the enclosing structure like the local example for symmetry.
-```json claude_desktop_config.json
-"my_agent": {
+```json claude_desktop_config.json
+{
+  "mcpServers": {
+    "my_agent": {
@@
-}
+    }
+  }
+}

And standardize URL/token naming with other pages.

"https://deployments.mcp-agent.com/servers/<id>/sse"
"Authorization: Bearer ${MCP_AGENT_API_KEY}"
docs/cloud/overview.mdx (5)

31-40: Example correctness: undefined variable in research.

results is returned but never defined. Replace with a placeholder string or compute it.

-async def research(query) -> str:
+async def research(query: str) -> str:
   # this is where your agent logic exists (functions and calls)
-  return results
+  return f"Searched for: {query}"

54-56: Stray backtick in login command.

Remove the trailing backtick.

-uv run mcp-agent login`
+uv run mcp-agent login

69-81: Claude Desktop config: standardize domain and token.

Align with other pages to reduce confusion.

-    "https://[your-agent-server-id].deployments.mcp-agent-cloud.lastmileai.dev/sse",
+    "https://deployments.mcp-agent.com/servers/<id>/sse",
@@
-    "Authorization: Bearer ${BEARER_TOKEN}"
+    "Authorization: Bearer ${MCP_AGENT_API_KEY}"

111-113: Broken link path.

CLI Reference is at /cli-reference, not /cloud/cli-reference.

-- [CLI Reference](/cloud/cli-reference)
+- [CLI Reference](/cli-reference)

102-106: Example link copy tweaks.

  • “github” → “GitHub”
  • Add terminal period for sentence consistency.
-... from github.
+... from GitHub.
docs/index.mdx (4)

6-10: Video asset LGTM; verify hosting permanence.

GitHub user-attachments can be deleted; consider mirroring or adding a thumbnail fallback.


28-29: Claim about “notifications”: add link or doc section.

If notifications are supported, link to a section; otherwise drop to avoid implying unsupported features.


63-90: Quick Example polish: typo and structure.

  • Typo: “quatum” → “quantum”
  • Running app.run() inside a tool is atypical; tools are usually invoked by the app/server. Consider moving the runnable demo to if __name__ == "__main__" and keep the tool side-effect free.
-async def research()->str:
+async def research() -> str:
@@
-    Research quatum computing function / tool call
+    Research quantum computing function/tool call
@@
-    async with app.run() as mcp_agent_app:
+    async with app.run() as mcp_agent_app:

Optional restructure:

  • Define research() as a pure tool.
  • In __main__, call a separate main() that runs the app and invokes agent logic.

133-156: Config snippet: keep provider examples consistent with cloud pages.

Elsewhere the Quick Start for cloud uses execution_engine: temporal. Consider a short note here pointing to cloud guidance.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 28794ef and bc73126.

📒 Files selected for processing (8)
  • docs/cloud/agent-server.mdx (4 hunks)
  • docs/cloud/deploying-mcp-servers.mdx (4 hunks)
  • docs/cloud/getting-started.mdx (7 hunks)
  • docs/cloud/overview.mdx (2 hunks)
  • docs/concepts/mcp-primitives.mdx (2 hunks)
  • docs/configuration.mdx (2 hunks)
  • docs/docs.json (2 hunks)
  • docs/index.mdx (8 hunks)
🧰 Additional context used
🧠 Learnings (2)
📚 Learning: 2025-07-22T18:59:49.368Z
Learnt from: CR
PR: lastmile-ai/mcp-agent#0
File: examples/usecases/reliable_conversation/CLAUDE.md:0-0
Timestamp: 2025-07-22T18:59:49.368Z
Learning: Applies to examples/usecases/reliable_conversation/examples/reliable_conversation/src/**/*.py : Use mcp-agent's Agent abstraction for ALL LLM interactions, including quality evaluation, to ensure consistent tool access, logging, and error handling.

Applied to files:

  • docs/cloud/overview.mdx
  • docs/cloud/agent-server.mdx
  • docs/index.mdx
  • docs/cloud/deploying-mcp-servers.mdx
📚 Learning: 2025-07-22T18:59:49.368Z
Learnt from: CR
PR: lastmile-ai/mcp-agent#0
File: examples/usecases/reliable_conversation/CLAUDE.md:0-0
Timestamp: 2025-07-22T18:59:49.368Z
Learning: Applies to examples/usecases/reliable_conversation/examples/reliable_conversation/src/utils/config.py : Configuration values such as quality_threshold, max_refinement_attempts, consolidation_interval, and evaluator_model_provider must be loaded from mcp_agent.config.yaml.

Applied to files:

  • docs/cloud/getting-started.mdx
  • docs/index.mdx
🔇 Additional comments (4)
docs/docs.json (1)

71-71: Branding change LGTM; check cross-doc consistency of the cloud group label.

"mcp-agent cloud" matches the rebrand elsewhere. Verify all internal links under this group still resolve and sidebar grouping renders as expected.

docs/cloud/deploying-mcp-servers.mdx (1)

184-198: Benefits section LGTM after rebrand.

Nice tightening of bullets; removal of Vault/regions avoids over-promising.

docs/cloud/agent-server.mdx (2)

20-34: Decorator naming and usage: confirm API.

Using @app.tool without parentheses is fine if the decorator is a property; just ensure it matches the actual API. The sync example is clear.


35-46: Async tool semantics: verify @app.async_tool name.

Double‑check the public API is async_tool (vs e.g., tool(async_=True) or @app.workflow_tool). If not, update naming to prevent user confusion.

[suggest_minor_issue]

Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>
api_key: !developer_secret
```

Mark which secrets you, as the developer, want to keep safe and secure.s
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Typo in documentation text: 's' at the end of the sentence should be removed. The line reads 'Mark which secrets you, as the developer, want to keep safe and secure.s' - the trailing 's' after the period is a typo that should be deleted.

Suggested change
Mark which secrets you, as the developer, want to keep safe and secure.s
Mark which secrets you, as the developer, want to keep safe and secure.

Spotted by Diamond

Fix in Graphite


Is this helpful? React 👍 or 👎 to let us know.

@andrew-lastmile andrew-lastmile merged commit 8f00f5a into main Sep 16, 2025
7 of 8 checks passed
@andrew-lastmile andrew-lastmile deleted the andrew-docs-mcp-agent-cloud branch September 16, 2025 00:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants